package cn.itcast.reggie.common;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

@ControllerAdvice //全局异常处理器,将该类对象交由spring管理
public class GlobelExceptionHandler {
    /**
     * 声明异常处理方法
     * 该异常处理方法，可以处理的异常类型
     * 异常处理方法，可以声明多个，不同的方法可以处理不同类型异常
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public R handException(Exception e) {
        e.printStackTrace();
        //记录异常日志
        R<Object> r = R.error("服务器出现错误");
        return  r;
    }

    @ExceptionHandler(MyIllegalArgumentException.class)
    @ResponseBody
    public R handException(MyIllegalArgumentException e) {
        e.printStackTrace();
        //记录异常日志
        R<Object> r = R.error(e.getMessage());
        return  r;
    }
}
